package co.yixiang.yshop.module.express.controller.admin.electronicsorder.vo;

import lombok.*;

import java.util.*;

import io.swagger.v3.oas.annotations.media.Schema;
import co.yixiang.yshop.framework.common.pojo.PageParam;

import java.time.LocalDateTime;

import org.springframework.format.annotation.DateTimeFormat;

import static co.yixiang.yshop.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 电子面单 Excel 导出 Request VO，参数和 ElectronicsOrderPageReqVO 是一致的")
@Data
public class ElectronicsOrderExportReqVO {

    @Schema(description = "快递公司id", example = "13715")
    private Integer shipperId;

    @Schema(description = "运费支付方式:1=现付,2=到付,3=月结,4=第三方付(仅SF支持)", example = "2")
    private Integer paytype;

    @Schema(description = "线下网点客户号", example = "张三")
    private String customerName;

    @Schema(description = "线下网点密码")
    private String customerPwd;

    @Schema(description = "网点名称")
    private String sendSite;

    @Schema(description = "网点快递员")
    private String sendStaff;

    @Schema(description = "月结编号")
    private String monthCode;

    @Schema(description = "是否通知揽件:0=通知揽件,1=不通知揽件")
    private Integer isNotice;

    @Schema(description = "是否返回电子面单模板:0=不返回,1=返回")
    private Integer isReturnTemp;

    @Schema(description = "是否需要短信提醒:0=否,1=是")
    private Integer isSendMessage;

    @Schema(description = "模板尺寸")
    private String templateSize;

    @Schema(description = "签回单操作要求(如：签名、盖章、身份证复印件等)")
    private String operateRequire;

    @Schema(description = "快递单号(仅宅急送可用)")
    private String logisticCode;

    @Schema(description = "上门揽件开始时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Integer[] startDate;

    @Schema(description = "上门揽件结束时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Integer[] endDate;

    @Schema(description = "备注", example = "你猜")
    private String remark;

    @Schema(description = "快递类型:1=标准快件", example = "1")
    private Integer expType;

    @Schema(description = "是否要签回单:0=否,1=是")
    private Integer isReturnSignBill;

    @Schema(description = "发件人公司")
    private String company;

    @Schema(description = "发件人省", example = "李四")
    private String provinceName;

    @Schema(description = "发件人市", example = "张三")
    private String cityName;

    @Schema(description = "发件人区", example = "张三")
    private String expAreaName;

    @Schema(description = "发件人详细地址")
    private String address;

    @Schema(description = "发件人姓名", example = "张三")
    private String name;

    @Schema(description = "发件人电话")
    private String tel;

    @Schema(description = "发件人手机号码")
    private String mobile;

    @Schema(description = "发件地邮编")
    private String postCode;

    @Schema(description = "自定义名称")
    private String title;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

}
